package com.hedl.practice.diyJava;

import java.math.BigInteger;

//用于表示任意大小的整数

/**
 * BigInteger就是在内部使用了，数组的结构；
 *      在使用的时候，千万注意的是，转换成确定的类型的时候，一定不要超出类型的最大值，否则会报错
 *      也可以在后面加上[类型]ValueExact()来保证结构的准确性；
 */
public class JavaAndBigInteger {

    public static void main(String[] args) {
        BigInteger bi = new BigInteger("123456789");
        BigInteger bi2 = new BigInteger("123456789123456789");
        BigInteger n = new BigInteger("999999").pow(99);

        System.out.println(bi.pow(5));          //类似于：123456789*123456789*123456789*123456789*123456789
        System.out.println(bi.add(bi2));        //类似于加法

        System.out.println(bi.longValue());     //转换为long类型
        System.out.println(bi.multiply(bi).longValueExact());       //multiply：类似于乘法；longValueExact：如果超出了long的范围会抛出异常ArithmeticException

        System.out.println("-----------------------------");
        float f = n.floatValue();
        System.out.println(f);
    }
}
